! function(e, n) { "function" == typeof define && (define.amd || define.cmd) ? define(function() { return n(e) }) : n(e, !0) }(this, function(e, n) {
    function i(n, i, t) { e.WeixinJSBridge ? WeixinJSBridge.invoke(n, o(i), function(e) { c(n, e, t) }) : u(n, t) }

    function t(n, i, t) { e.WeixinJSBridge ? WeixinJSBridge.on(n, function(e) { t && t.trigger && t.trigger(e), c(n, e, i) }) : t ? u(n, t) : u(n, i) }

    function o(e) { return e = e || {}, e.appId = C.appId, e.verifyAppId = C.appId, e.verifySignType = "sha1", e.verifyTimestamp = C.timestamp + "", e.verifyNonceStr = C.nonceStr, e.verifySignature = C.signature, e }

    function r(e) { return { timeStamp: e.timestamp + "", nonceStr: e.nonceStr, package: e.package, paySign: e.paySign, signType: e.signType || "SHA1" } }

    function a(e) { return e.postalCode = e.addressPostalCode, delete e.addressPostalCode, e.provinceName = e.proviceFirstStageName, delete e.proviceFirstStageName, e.cityName = e.addressCitySecondStageName, delete e.addressCitySecondStageName, e.countryName = e.addressCountiesThirdStageName, delete e.addressCountiesThirdStageName, e.detailInfo = e.addressDetailInfo, delete e.addressDetailInfo, e }

    function c(e, n, i) {
        "openEnterpriseChat" == e && (n.errCode = n.err_code), delete n.err_code, delete n.err_desc, delete n.err_detail;
        var t = n.errMsg;
        t || (t = n.err_msg, delete n.err_msg, t = s(e, t), n.errMsg = t), (i = i || {})._complete && (i._complete(n), delete i._complete), t = n.errMsg || "", C.debug && !i.isInnerInvoke && alert(JSON.stringify(n));
        var o = t.indexOf(":");
        switch (t.substring(o + 1)) {
            case "ok":
                i.success && i.success(n);
                break;
            case "cancel":
                i.cancel && i.cancel(n);
                break;
            default:
                i.fail && i.fail(n)
        }
        i.complete && i.complete(n)
    }

    function s(e, n) {
        var i = e,
            t = v[i];
        t && (i = t);
        var o = "ok";
        if (n) { var r = n.indexOf(":"); "confirm" == (o = n.substring(r + 1)) && (o = "ok"), "failed" == o && (o = "fail"), -1 != o.indexOf("failed_") && (o = o.substring(7)), -1 != o.indexOf("fail_") && (o = o.substring(5)), "access denied" != (o = (o = o.replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != o || (o = "permission denied"), "config" == i && "function not exist" == o && (o = "ok"), "" == o && (o = "fail") }
        return n = i + ":" + o
    }

    function d(e) {
        if (e) {
            for (var n = 0, i = e.length; n < i; ++n) {
                var t = e[n],
                    o = h[t];
                o && (e[n] = o)
            }
            return e
        }
    }

    function u(e, n) {
        if (!(!C.debug || n && n.isInnerInvoke)) {
            var i = v[e];
            i && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || "")
        }
    }

    function l(e) {
        if (!(k || w || C.debug || x < "6.0.2" || V.systemType < 0)) {
            var n = new Image;
            V.appId = C.appId, V.initTime = A.initEndTime - A.initStartTime, V.preVerifyTime = A.preVerifyEndTime - A.preVerifyStartTime, N.getNetworkType({
                isInnerInvoke: !0,
                success: function(e) {
                    V.networkType = e.networkType;
                    var i = "https://open.weixin.qq.com/sdk/report?v=" + V.version + "&o=" + V.isPreVerifyOk + "&s=" + V.systemType + "&c=" + V.clientVersion + "&a=" + V.appId + "&n=" + V.networkType + "&i=" + V.initTime + "&p=" + V.preVerifyTime + "&u=" + V.url;
                    n.src = i
                }
            })
        }
    }

    function p() { return (new Date).getTime() }

    function f(n) { T && (e.WeixinJSBridge ? n() : S.addEventListener && S.addEventListener("WeixinJSBridgeReady", n, !1)) }

    function m() { N.invoke || (N.invoke = function(n, i, t) { e.WeixinJSBridge && WeixinJSBridge.invoke(n, o(i), t) }, N.on = function(n, i) { e.WeixinJSBridge && WeixinJSBridge.on(n, i) }) }

    function g(e) {
        if ("string" == typeof e && e.length > 0) {
            var n = e.split("?")[0],
                i = e.split("?")[1];
            return n += ".html", void 0 !== i ? n + "?" + i : n
        }
    }
    if (!e.jWeixin) {
        var h = { config: "preVerifyJSAPI", onMenuShareTimeline: "menu:share:timeline", onMenuShareAppMessage: "menu:share:appmessage", onMenuShareQQ: "menu:share:qq", onMenuShareWeibo: "menu:share:weiboApp", onMenuShareQZone: "menu:share:QZone", previewImage: "imagePreview", getLocation: "geoLocation", openProductSpecificView: "openProductViewWithPid", addCard: "batchAddCard", openCard: "batchViewCard", chooseWXPay: "getBrandWCPayRequest", openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", startSearchBeacons: "startMonitoringBeacons", stopSearchBeacons: "stopMonitoringBeacons", onSearchBeacons: "onBeaconsInRange", consumeAndShareCard: "consumedShareCard", openAddress: "editAddress" },
            v = function() { var e = {}; for (var n in h) e[h[n]] = n; return e }(),
            S = e.document,
            I = S.title,
            y = navigator.userAgent.toLowerCase(),
            _ = navigator.platform.toLowerCase(),
            k = !(!_.match("mac") && !_.match("win")),
            w = -1 != y.indexOf("wxdebugger"),
            T = -1 != y.indexOf("micromessenger"),
            M = -1 != y.indexOf("android"),
            P = -1 != y.indexOf("iphone") || -1 != y.indexOf("ipad"),
            x = function() { var e = y.match(/micromessenger\/(\d+\.\d+\.\d+)/) || y.match(/micromessenger\/(\d+\.\d+)/); return e ? e[1] : "" }(),
            A = { initStartTime: p(), initEndTime: 0, preVerifyStartTime: 0, preVerifyEndTime: 0 },
            V = { version: 1, appId: "", initTime: 0, preVerifyTime: 0, networkType: "", isPreVerifyOk: 1, systemType: P ? 1 : M ? 2 : -1, clientVersion: x, url: encodeURIComponent(location.href) },
            C = {},
            L = { _completes: [] },
            B = { state: 0, data: {} };
        f(function() { A.initEndTime = p() });
        var O = !1,
            E = [],
            N = {
                config: function(e) {
                    C = e, u("config", e);
                    var n = !1 !== C.check;
                    f(function() {
                        if (n) i(h.config, { verifyJsApiList: d(C.jsApiList) }, function() {
                            L._complete = function(e) { A.preVerifyEndTime = p(), B.state = 1, B.data = e }, L.success = function(e) { V.isPreVerifyOk = 0 }, L.fail = function(e) { L._fail ? L._fail(e) : B.state = -1 };
                            var e = L._completes;
                            return e.push(function() { l() }), L.complete = function(n) {
                                for (var i = 0, t = e.length; i < t; ++i) e[i]();
                                L._completes = []
                            }, L
                        }()), A.preVerifyStartTime = p();
                        else {
                            B.state = 1;
                            for (var e = L._completes, t = 0, o = e.length; t < o; ++t) e[t]();
                            L._completes = []
                        }
                    }), m()
                },
                ready: function(e) { 0 != B.state ? e() : (L._completes.push(e), !T && C.debug && e()) },
                error: function(e) { x < "6.0.2" || (-1 == B.state ? e(B.data) : L._fail = e) },
                checkJsApi: function(e) {
                    var n = function(e) {
                        var n = e.checkResult;
                        for (var i in n) {
                            var t = v[i];
                            t && (n[t] = n[i], delete n[i])
                        }
                        return e
                    };
                    i("checkJsApi", { jsApiList: d(e.jsApiList) }, (e._complete = function(e) {
                        if (M) {
                            var i = e.checkResult;
                            i && (e.checkResult = JSON.parse(i))
                        }
                        e = n(e)
                    }, e))
                },
                onMenuShareTimeline: function(e) { t(h.onMenuShareTimeline, { complete: function() { i("shareTimeline", { title: e.title || I, desc: e.title || I, img_url: e.imgUrl || "", link: e.link || location.href, type: e.type || "link", data_url: e.dataUrl || "" }, e) } }, e) },
                onMenuShareAppMessage: function(e) { t(h.onMenuShareAppMessage, { complete: function(n) { "favorite" === n.scene ? i("sendAppMessage", { title: e.title || I, desc: e.desc || "", link: e.link || location.href, img_url: e.imgUrl || "", type: e.type || "link", data_url: e.dataUrl || "" }) : i("sendAppMessage", { title: e.title || I, desc: e.desc || "", link: e.link || location.href, img_url: e.imgUrl || "", type: e.type || "link", data_url: e.dataUrl || "" }, e) } }, e) },
                onMenuShareQQ: function(e) { t(h.onMenuShareQQ, { complete: function() { i("shareQQ", { title: e.title || I, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e) } }, e) },
                onMenuShareWeibo: function(e) { t(h.onMenuShareWeibo, { complete: function() { i("shareWeiboApp", { title: e.title || I, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e) } }, e) },
                onMenuShareQZone: function(e) { t(h.onMenuShareQZone, { complete: function() { i("shareQZone", { title: e.title || I, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e) } }, e) },
                updateTimelineShareData: function(e) { i("updateTimelineShareData", { title: e.title, link: e.link, imgUrl: e.imgUrl }, e) },
                updateAppMessageShareData: function(e) { i("updateAppMessageShareData", { title: e.title, desc: e.desc, link: e.link, imgUrl: e.imgUrl }, e) },
                startRecord: function(e) { i("startRecord", {}, e) },
                stopRecord: function(e) { i("stopRecord", {}, e) },
                onVoiceRecordEnd: function(e) { t("onVoiceRecordEnd", e) },
                playVoice: function(e) { i("playVoice", { localId: e.localId }, e) },
                pauseVoice: function(e) { i("pauseVoice", { localId: e.localId }, e) },
                stopVoice: function(e) { i("stopVoice", { localId: e.localId }, e) },
                onVoicePlayEnd: function(e) { t("onVoicePlayEnd", e) },
                uploadVoice: function(e) { i("uploadVoice", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e) },
                downloadVoice: function(e) { i("downloadVoice", { serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e) },
                translateVoice: function(e) { i("translateVoice", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e) },
                chooseImage: function(e) { i("chooseImage", { scene: "1|2", count: e.count || 9, sizeType: e.sizeType || ["original", "compressed"], sourceType: e.sourceType || ["album", "camera"] }, (e._complete = function(e) { if (M) { var n = e.localIds; try { n && (e.localIds = JSON.parse(n)) } catch (e) {} } }, e)) },
                getLocation: function(e) {},
                previewImage: function(e) { i(h.previewImage, { current: e.current, urls: e.urls }, e) },
                uploadImage: function(e) { i("uploadImage", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e) },
                downloadImage: function(e) { i("downloadImage", { serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e) },
                getLocalImgData: function(e) {
                    !1 === O ? (O = !0, i("getLocalImgData", { localId: e.localId }, (e._complete = function(e) {
                        if (O = !1, E.length > 0) {
                            var n = E.shift();
                            wx.getLocalImgData(n)
                        }
                    }, e))) : E.push(e)
                },
                getNetworkType: function(e) {
                    var n = function(e) {
                        var n = e.errMsg;
                        e.errMsg = "getNetworkType:ok";
                        var i = e.subtype;
                        if (delete e.subtype, i) e.networkType = i;
                        else {
                            var t = n.indexOf(":"),
                                o = n.substring(t + 1);
                            switch (o) {
                                case "wifi":
                                case "edge":
                                case "wwan":
                                    e.networkType = o;
                                    break;
                                default:
                                    e.errMsg = "getNetworkType:fail"
                            }
                        }
                        return e
                    };
                    i("getNetworkType", {}, (e._complete = function(e) { e = n(e) }, e))
                },
                openLocation: function(e) { i("openLocation", { latitude: e.latitude, longitude: e.longitude, name: e.name || "", address: e.address || "", scale: e.scale || 28, infoUrl: e.infoUrl || "" }, e) },
                getLocation: function(e) { e = e || {}, i(h.getLocation, { type: e.type || "wgs84" }, (e._complete = function(e) { delete e.type }, e)) },
                hideOptionMenu: function(e) { i("hideOptionMenu", {}, e) },
                showOptionMenu: function(e) { i("showOptionMenu", {}, e) },
                closeWindow: function(e) { i("closeWindow", {}, e = e || {}) },
                hideMenuItems: function(e) { i("hideMenuItems", { menuList: e.menuList }, e) },
                showMenuItems: function(e) { i("showMenuItems", { menuList: e.menuList }, e) },
                hideAllNonBaseMenuItem: function(e) { i("hideAllNonBaseMenuItem", {}, e) },
                showAllNonBaseMenuItem: function(e) { i("showAllNonBaseMenuItem", {}, e) },
                scanQRCode: function(e) {
                    i("scanQRCode", { needResult: (e = e || {}).needResult || 0, scanType: e.scanType || ["qrCode", "barCode"] }, (e._complete = function(e) {
                        if (P) {
                            var n = e.resultStr;
                            if (n) {
                                var i = JSON.parse(n);
                                e.resultStr = i && i.scan_code && i.scan_code.scan_result
                            }
                        }
                    }, e))
                },
                openAddress: function(e) { i(h.openAddress, {}, (e._complete = function(e) { e = a(e) }, e)) },
                openProductSpecificView: function(e) { i(h.openProductSpecificView, { pid: e.productId, view_type: e.viewType || 0, ext_info: e.extInfo }, e) },
                addCard: function(e) {
                    for (var n = e.cardList, t = [], o = 0, r = n.length; o < r; ++o) {
                        var a = n[o],
                            c = { card_id: a.cardId, card_ext: a.cardExt };
                        t.push(c)
                    }
                    i(h.addCard, { card_list: t }, (e._complete = function(e) {
                        var n = e.card_list;
                        if (n) {
                            for (var i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
                                var o = n[i];
                                o.cardId = o.card_id, o.cardExt = o.card_ext, o.isSuccess = !!o.is_succ, delete o.card_id, delete o.card_ext, delete o.is_succ
                            }
                            e.cardList = n, delete e.card_list
                        }
                    }, e))
                },
                chooseCard: function(e) { i("chooseCard", { app_id: C.appId, location_id: e.shopId || "", sign_type: e.signType || "SHA1", card_id: e.cardId || "", card_type: e.cardType || "", card_sign: e.cardSign, time_stamp: e.timestamp + "", nonce_str: e.nonceStr }, (e._complete = function(e) { e.cardList = e.choose_card_info, delete e.choose_card_info }, e)) },
                openCard: function(e) {
                    for (var n = e.cardList, t = [], o = 0, r = n.length; o < r; ++o) {
                        var a = n[o],
                            c = { card_id: a.cardId, code: a.code };
                        t.push(c)
                    }
                    i(h.openCard, { card_list: t }, e)
                },
                consumeAndShareCard: function(e) { i(h.consumeAndShareCard, { consumedCardId: e.cardId, consumedCode: e.code }, e) },
                chooseWXPay: function(e) { i(h.chooseWXPay, r(e), e) },
                openEnterpriseRedPacket: function(e) { i(h.openEnterpriseRedPacket, r(e), e) },
                startSearchBeacons: function(e) { i(h.startSearchBeacons, { ticket: e.ticket }, e) },
                stopSearchBeacons: function(e) { i(h.stopSearchBeacons, {}, e) },
                onSearchBeacons: function(e) { t(h.onSearchBeacons, e) },
                openEnterpriseChat: function(e) { i("openEnterpriseChat", { useridlist: e.userIds, chatname: e.groupName }, e) },
                launchMiniProgram: function(e) { i("launchMiniProgram", { targetAppId: e.targetAppId, path: g(e.path), envVersion: e.envVersion }, e) },
                miniProgram: { navigateBack: function(e) { e = e || {}, f(function() { i("invokeMiniProgramAPI", { name: "navigateBack", arg: { delta: e.delta || 1 } }, e) }) }, navigateTo: function(e) { f(function() { i("invokeMiniProgramAPI", { name: "navigateTo", arg: { url: e.url } }, e) }) }, redirectTo: function(e) { f(function() { i("invokeMiniProgramAPI", { name: "redirectTo", arg: { url: e.url } }, e) }) }, switchTab: function(e) { f(function() { i("invokeMiniProgramAPI", { name: "switchTab", arg: { url: e.url } }, e) }) }, reLaunch: function(e) { f(function() { i("invokeMiniProgramAPI", { name: "reLaunch", arg: { url: e.url } }, e) }) }, postMessage: function(e) { f(function() { i("invokeMiniProgramAPI", { name: "postMessage", arg: e.data || {} }, e) }) }, getEnv: function(n) { f(function() { n({ miniprogram: "miniprogram" === e.__wxjs_environment }) }) } }
            },
            b = 1,
            R = {};
        return S.addEventListener("error", function(e) {
            if (!M) {
                var n = e.target,
                    i = n.tagName,
                    t = n.src;
                if (("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) && -1 != t.indexOf("wxlocalresource://")) {
                    e.preventDefault(), e.stopPropagation();
                    var o = n["wx-id"];
                    if (o || (o = b++, n["wx-id"] = o), R[o]) return;
                    R[o] = !0, wx.ready(function() { wx.getLocalImgData({ localId: t, success: function(e) { n.src = e.localData } }) })
                }
            }
        }, !0), S.addEventListener("load", function(e) {
            if (!M) {
                var n = e.target,
                    i = n.tagName;
                n.src;
                if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) {
                    var t = n["wx-id"];
                    t && (R[t] = !1)
                }
            }
        }, !0), n && (e.wx = e.jWeixin = N), N
    }
});